iT邦幫忙

2021 iThome 鐵人賽

DAY 20
0
AI & Data

Apache NiFi - 讓你輕鬆設計 Data Pipeline系列 第 20

Day20 NiFi - 與 GCP Cloud Storage 對接設定

  • 分享至 

  • xImage
  •  

今天開始會帶大家來操作一下 NiFi 如何來與 GCP 相關的服務做整合與設定,首先會先介紹 Google Cloud Storage 的應用。

Setting GCP Controller Service

首先一開始,我們一樣要事先擁有 GCP 的 Credentials,這邊給各位讀者參考連結,照著操作到 GCP 設定,原則上就會取得到 GCP Credential JSON File 囉。

拿到 GCP Credentials File 之後,我們一樣 volume 到 NiFi 的 Container 內某個路徑,接著到 UI 的 Controller Service 選擇 GCPCredentialsControllerService 來做設定,如下圖:

我們繼續點進去做更細項的設定,如下圖:

只要在 Service Account JSON File 指定好你的 GCP Credential JSON File 路徑即可。

到這邊的操作與 AWS 的 Controller Service 都十分類似,所以相信各位讀者們也容易就手。

How to use?

設定好 GCPCredentialsControllerService 之後,接下來我們就可以拉 GCS 相關的 Processors 來做操作了,在 NiFi 當中關於 GCS 的 Processors 包含了如下幾種:

ListGCSBucket

列出特定 GCS 某一個 Bucker 且特定路徑下的所有 Objects。
這邊,我們可以看到如下圖的設定:

  • Bucket: 要使用的 Bucket Name。
  • Project ID:對應的 GCP Project ID。
  • GCP Credentials Provider Service:選擇剛剛設定好的 GCP Controller Service。
  • Prefix:要列出的 GCS Folder Path。

FetchGCSObject

取得 GCS 的 Objects,相關設定如下圖:

假如有一個 file 在 GCS 的路徑是 gs://my-bucket/example/data/titanic.csv

  • Bucket: 要使用的 Bucket Name,套用例子就是 my-bucket
  • Name: 要讀取的 filename,這邊包含 GCS 的 Prefix 和 file 名稱,套用例子就是 example/data/titanic.csv
  • Project ID:對應的 GCP Project ID。
  • GCP Credentials Provider Service:選擇剛剛設定好的 GCP Controller Service。

這邊會發現 BucketName 是使用 Variables 的方式,代表要進這個 Processor 之前,FlowFiles 必須帶有 gcs.bucketfilename 這兩個 Attributes,這樣才能做讀取,當然讀者們也可以直接設定 Value 到對應的參數。

PutGCSObject

上傳 Objects 到指定的 GCS,相關設定如下圖:

假如要上傳一個 file 且在 GCS 的路徑是 gs://my-bucket/example/data/titanic2.csv

  • Project ID:對應的 GCP Project ID。
  • GCP Credentials Provider Service:選擇剛剛設定好的 GCP Controller Service。
  • Bucket: 要使用的 Bucket Name,套用例子就是 my-bucket
  • Key: 要上傳的 filename,這邊包含 GCS 的 Prefix 和 file 名稱,套用例子就是 example/data/titanic2.csv

DeleteGCSObject

刪除 GCS 的某一個 Objects,相關設定如下圖:

假如要刪除一個 file 且在 GCS 的路徑是 gs://my-bucket/example/data/titanic.csv

  • Project ID:對應的 GCP Project ID。
  • GCP Credentials Provider Service:選擇剛剛設定好的 GCP Controller Service。
  • Bucket: 要使用的 Bucket Name,套用例子就是 my-bucket
  • Key: 要刪除的 filename,這邊包含 GCS 的 Prefix 和 file 名稱,套用例子就是 example/data/titanic.csv

我們可以發現,連 Processors 的設定,都與 AWS S3 非常的類似,所以這邊只要指定好對應的設定,也能像 S3 的 Processor 輕鬆做使用。此外,每一個 Processor 之間的設定也很類似,所以只要設定好 Controller Service 以及對應的 Variables 就可以很輕鬆地對 GCS 的資料或檔案來做操作了。

小總結

今天的文章與先前的 AWS S3 一樣十分簡單,經過我們一系列的 Processor 的設定與操作,我想各位有相對一開始較容易上手了,其實在 NiFi 的設定上就是這樣,很多 Processor 都是大同小異的,所以只要掌握好重點與精髓,對於任何一個新的 Datasource ,你也可以很輕鬆地去對他們做資料的操作。

最後,提醒一下,明天就會來介紹如何與 GCP 的 BigQuery 來做設定與應用,該服務也是目前在企業上最常用的資料服務,所以如果知道如何操作,想必也能獲益良多。

Reference


上一篇
Day19 NiFi - 與 AWS SNS & AWS SQS 對接設定
下一篇
Day21 NiFi - 與 GCP BigQuery 對接設定
系列文
Apache NiFi - 讓你輕鬆設計 Data Pipeline30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言